#include <DHT11.h>
#include <SoftwareSerial.h>

#define DHT11_PIN 2
#define LDR_pin A0
#define soil_moisture_sensor_pin A1
DHT11 dht11(2);
SoftwareSerial HC12_ser(3,4);
int light,moist,l,sm;
int temperature = 0;
int humidity = 0;
void print_light_moist()
 {
   Serial.print("light intensity level:");
   Serial.print(l);
   Serial.print("%\tsoil moisture level:");
   Serial.print(sm);
   Serial.println('%');   
 }
void print_temp_humidity()
 {
   int result = dht11.readTemperatureHumidity(temperature, humidity);
   Serial.print("temperature:");
   Serial.print(temperature);
   Serial.print(" °C\thumidity:");
   Serial.print(humidity);
   Serial.println(" %RH");
 }
void trnsmit_temp_humidity()
 {
   int result = dht11.readTemperatureHumidity(temperature, humidity);
   HC12_ser.print(temperature);
   HC12_ser.print('t');
   delay(500);  
   HC12_ser.print(humidity);
   HC12_ser.print('h');
   delay(500);   
 } 
void trnsmit_light_moist()
 {
   HC12_ser.print(l);
   HC12_ser.print('l');
   delay(500);
   HC12_ser.print(sm);   
   HC12_ser.print('s'); 
   delay(500);  
 }  
void setup()
{
  HC12_ser.begin(9600);
  Serial.begin(9600);
  dht11.setDelay(2000);
}

void loop()
{
  light = analogRead(LDR_pin);
  moist = analogRead(soil_moisture_sensor_pin);
  l = map(light,0,1023,10,99);
  sm = map(moist,0,1023,99,10);
  print_light_moist();
  print_temp_humidity();
  trnsmit_temp_humidity();
  trnsmit_light_moist();  
}